<?php
/*百度短息API调用*/
class BaiduSMS{

	static function send($arr){
		$url =  'http://apis.baidu.com/baidu_communication/baidusms/baidusms?profileCode='.$arr['profileCode'].'&phoneNumber='.$arr['phoneNumber'].'&templateCode='.$arr['templateCode'];
		$contentVar = array(
		        'code' => $arr['code'],
		        'time' => ' '.$arr['time']
		);
		$contentVar = json_encode($contentVar);  //必须是json串
		$contentVar = urlencode($contentVar);   //必须经过urlencode编码

		$url .= '&contentVar='.$contentVar;

		$ch = curl_init();

		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_HEADER, FALSE);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
		curl_setopt($ch, CURLOPT_TIMEOUT_MS, 5000);
		curl_setopt($ch, CURLOPT_HTTPHEADER, array('apikey: '.$arr['apikey']));
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

		$response = curl_exec($ch);
		if (curl_errno($ch))
		{
		throw new Exception('请求apistore失败!', self::CURL_ERROR);
		}
		curl_close($ch);
		$log = fopen('BaiduSMS.txt', 'a+');
		fwrite($log, "【".$arr['phoneNumber']."】\t".date('Y-m-d H:i:s')."\n$response\n\n");
		fclose($log);
		return $response;
		 //【重要】 调试前一定要进行申请，申请成功后才可以调试，不然会调试不成功。
	}
}
/*JSON返回示例 :
{
    "requestId": "f585d09c-7bd7-486d-8e30-529c0e69efe2",   //请求唯一标识
    "code": "1000",   //业务状态码，成功为1000
    "message": "成功",
    "data": {
        "transId": "927rewjfau324edjfljau3eiuoieure",
        "messageCount": "2",		//计费条数
        "submitStatus": "1000",    //短信提交状态码，成功为1000
        "submitStatusDesc": "已提交运营商"
    }
}

# code和submitStatus都为1000才是短信发送成功
备注 :
1. 在调试前一定要进行申请，申请成功后才可进行调试，不然会调试不成功。    【重要】
2. 该服务目前只针对企业用户开放       【重要】
3. contentVar 为模板参数， 必须为json串，且经过urlencode编码；
4. 不支持群发；
5. 上面的profileCode和templateCode需要申请获取【重要】
6. 短信发送成功才进行计费，按成功发送的短信条数进行扣费
*/